home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 1 (Walnut Creek)
/
Aminet - June 1993 [Walnut Creek].iso
/
aminet
/
os20
/
util
/
exept19.lzh
/
ExecPatch.DOC
< prev
Wrap
Text File
|
1993-04-21
|
3KB
|
72 lines
================================
ExecPatch 1.9 (16 Apr 1993)
Copyright (C) 1993 Arthur Hagen.
================================
This software is FreeWare, and NOT in the Public Domain!
Requires KickStart 37.xx, CLI use only.
The Amiga is a multitasking machine (no kidding!), and will happily
switch its CPU use between several tasks and processes too fast for the
user really to notice. This task switching system is the whole basis
for the Amiga's multitasking capabilities, and has, naturally, been
coded in efficient assembly to reduce overhead as much as possible.
Even so, several of the basis multitasking functions of the system
could be optimised even further, thus speeding up the machine when
several tasks are running simultaneously, and/or the CPU use is high.
So, I wrote this little utility that will replace some of the systems
key functions with more speed-optimised, but excactly equal code. Just
put ExecPatch in your S:User-Startup or similar. And Commodore should
put these or better routines in their next OS.
The functions that will be modified in exec.library are:
Switch() Dispatch() Exception()
Wait() DoIO() WaitIO()
In addition, if you have a CPU without cache, the cache functions in
exec.library that does nothing at all will be replaced with a return
statement in the jumptable itself. The functions will be checked first
to see if they really does nothing but return, so everything should be
safe. (This replaces the program StubIt, btw.)
How much does ExecPatch help?
=============================
ExecPatch will only speed up the machine in a multitasking situation,
so speed test programs will not report any increased speed, unless the
test can be made with multitasking enabled.
As a small test, I ran AIBB 5.5 in multitasking mode with priority 0
(the same as all other normal tasks), while running two console
windows in the background that just echoed "test" indefinately to
their respective windows. Without ExecPatch, AIBB could do 793
dhrystones per second (on a 68010-equipped machine); with ExecPatch
installed, this increased to 887 dhry/s - an increase of about 11.85%.
The other two tasks running were of course speeded up as well.
Bugs/caveats:
=============
1) Some virus killers (like VirusChecker and my own VMon) might
report that vectors have changed (especially the DoIO vector). This
is as it should be, as the vector really has changed, and it is
nothing to worry about. If there was a virus lurking on that vector,
it would have been replaced by ExecPatch's routine.
2) ExecPatch will steal a couple of hundred bytes permanently, and
these will not be released to the system except at reboot.
3) If you *only* have chip-mem or slow-mem on your system, don't
expect too much from patches like this, as running code from ROM can
actually prove to be faster, especially when displaying graphics.
Three executable files are now included in the archive:
ExecPatch - Should work on all machines running OS 2.0/2.1
without coprocessors or MMU.
ExecPatch_010 - Works only on 68010/20-equipped machines,
but shaves off a few extra cycles.
ExecPatch_881 - For 68020/30/40-machines equipped with coprocessors.
Changes since version 1.6:
Should now work on machines with cache, coprocessors and MMU.
Code somewhat optimised.
Enjoy,
*Art